package com.hzf.api.rpc.api;

import com.github.wenhao.geohash.domain.GeoRange;
import com.hzf.config.dao.model.*;

import com.hzf.designer.dao.model.*;
import com.hzf.material.dao.model.*;
import com.hzf.money.dao.model.MoneyCashFlow;
import com.hzf.money.dao.model.MoneyCashFlowExample;
import com.hzf.money.dao.model.MoneyUser;
import com.hzf.money.dao.model.MoneyUserExample;
import com.hzf.order.dao.model.*;
import com.hzf.ucenter.dao.model.*;
import com.hzf.workman.dao.model.*;

import java.util.List;

/**
 * api系统总接口
 * Created by shuhzf on 2017/2/19.
 */

public interface ApiService {
    //存入用户第三方认证信息
    UcenterUserOauth insertUserOauth(UcenterUserOauth ucenterUserOauth);
    //存入用户信息
    UcenterUser insertUser(UcenterUser ucenterUser);
    //修改用户信息
    int update(UcenterUser ucenterUser);
    //根据第三方凭证查询用户信息
    UcenterUserOauth selectOauth(String openid);
    //根据第三方凭证查询用户信息
    UcenterUserOauth selectOauthEx(UcenterUserOauthExample example);
    //查询用户
    UcenterUser getUser(UcenterUserExample ucenterUserExample);
    //根据用户随机字符串查询用户信息
    UcenterUser  selectUser(int userThirdId );
    String hello(String name);
    //查询平台开放地区
    List<ConfigRegion> selectRegion(ConfigRegionExample configRegionExample);
    //存入用户认证信息
    UcenterUserAuth insertUcneterUserAuth(UcenterUserAuth ucenterUserAuth,int typeStatus);
    //存入材料商认证扩展信息
    UcenterAuthBusiness insertUcenterAuthBusiness(UcenterAuthBusiness ucenterAuthBusiness);
    //存入认证信息状态
    UcenterAuthType insetUcenterAuthType(UcenterAuthType ucenterAuthType);
    //存入审核认证信息
    UcenterAuthInfo insetUcenterAuthInfo(UcenterAuthInfo ucenterAuthInfo);
    //根据编号查询地址
    ConfigRegion selectAddressRegion(ConfigRegionExample configRegionExample);
    //查询所有风格
    List<ConfigStyle> selectByConfigStyleExample(ConfigStyleExample example);
    //查询单一风格
    ConfigStyle selectConfigStyleRegion(ConfigStyleExample example);
    //查询所有案例
    List<ConfigPtanli> selectConfigPtanliExample(ConfigPtanliExample example);
    //查询单一案例
    ConfigPtanli selectConfigPtanliRegion(ConfigPtanliExample example);
    //查询所有用户认证信息
    List<UcenterUserAuth>selectUcenterUserAuth(UcenterUserAuthExample ucenterUserAuthExample);
    List<UcenterAuthInfo>selectUcenterAuthInfo(UcenterAuthInfoExample ucenterAuthInfoExample);
    //查询店铺入住区位
    List<MaterialArea> selectByMaterialArea(MaterialAreaExample materiaAreaExample);
    //查询店铺入职
    List<MaterialList> selectByMaterialList(MaterialListExample materialListExample);
    List<MaterialListType> selectByMaterialListType(MaterialListTypeExample materialListTypeExample);
    List<MaterialGoodsModelPin> selectByMaterialGoodsModelPin(MaterialGoodsModelPinExample materialGoodsModelPinExample);
    List<MaterialGoodsModel> selectByMaterialGoodsModel(MaterialGoodsModelExample materialGoodsModelExample);
    List<MaterialGoodsPic> selectByMaterialGoodsPic(MaterialGoodsPicExample materialGoodsPicExample);
    List<MaterialGoods> selectByMaterialGoods(MaterialGoodsExample materialGoodsExample);
    List<MaterialGoodsTypeBig> selectByMaterialGoodsTypeBig(MaterialGoodsTypeBigExample materialGoodsTypeBigExample);
    List<MaterialGoodsTypeMiddle> selectByMaterialGoodsTypeMiddle(MaterialGoodsTypeMiddleExample materialGoodsTypeMiddleExample);
    List<MaterialGoodsTypeSmall> selectByMaterialGoodsTypeSmall(MaterialGoodsTypeSmallExample materialGoodsTypeSmallExample);
    //查询用户商店
    MaterialShop selectByShop(MaterialShopExample materialShopExample);
    //查询用户信息
    UcenterAuthInfo selectUserinfo(UcenterAuthInfoExample ucenterAuthInfoExample);
    int installShop(MaterialShop materialShop);
    MaterialGoods installGoods(MaterialGoods materialGoods);
    MaterialGoodsModel installGoodsModel(MaterialGoodsModel materialGoodsModel);
    MaterialGoodsModelPin installGoodsPin(MaterialGoodsModelPin materialGoodsModelPin);
    MaterialGoods selectByGoods(MaterialGoodsExample example);
    List<MaterialGoods> selectGoodsByExampleForOffsetPage(MaterialGoodsExample example, Integer offset, Integer limit);
    long countGoodsByExample(MaterialGoodsExample example);
    MaterialGoodsModelPin selectModelPin (MaterialGoodsModelPinExample materialGoodsModelPin);
    MaterialGoodsTypeMiddle selectMiddle(MaterialGoodsTypeMiddleExample materialGoodsTypeMiddleExample);
    MaterialGoodsTypeSmall selectSmall(MaterialGoodsTypeSmallExample materialGoodsTypeSmallExample);
    MaterialGoodsTypeBig selectBig(MaterialGoodsTypeBigExample materialGoodsTypeBigExample);
    int updateGoods(MaterialGoods materialGoods);
    int updateGoodsModel(MaterialGoodsModel materialGoodsModel);
    int delectModels(MaterialGoodsModelExample materialGoodsModelExample);
    int delectGoods(int id);
    int updateGoodsModelPin(MaterialGoodsModelPin materialGoodsModelPinExample);
    int delectGoodsModelPin(MaterialGoodsModelPinExample materialGoodsModelPinExample);
    //距离查询商品
    List<MaterialGoods> selectByPrimaryDistance(int regionNumber,int typeId,int status, long min0, long max0,
                                                long min1, long max1, long min2, long max2,
                                                long min3, long max3,
                                                long min4, long max4,
                                                long min5, long max5,
                                                long min6, long max6,
                                                long min7, long max7,
                                                long min8,long max8);
    //距离查询设计师
    List<DneedsDesigner> selectByPrimaryDneedsDesigner(int regionNumber,int status, long min0, long max0,
                                                long min1, long max1, long min2, long max2,
                                                long min3, long max3,
                                                long min4, long max4,
                                                long min5, long max5,
                                                long min6, long max6,
                                                long min7, long max7,
                                                long min8,long max8);
    //距离查询设计师
    List<DneedsDemand> selectByPrimaryDneedsDemand(int regionNumber,int status, long min0, long max0,
                                                       long min1, long max1, long min2, long max2,
                                                       long min3, long max3,
                                                       long min4, long max4,
                                                       long min5, long max5,
                                                       long min6, long max6,
                                                       long min7, long max7,
                                                       long min8,long max8);
    //分页查询商品
    List<MaterialGoods> selectByPrimaryCity(MaterialGoodsExample example,int offset,int limit);
    int countByCityExample(MaterialGoodsExample example);
    //查询用户购物车
    List<OrderCart> selectByGoodsPrimaryKey(OrderCartExample orderCartExample);

    List<OrderCart> selectByShopId(OrderCartExample orderCartExample);

    //保存用户购物车
    int insertOrderCart(OrderCart ordercart);
    //修改用户购物车
    int  updateCart(OrderCart orderCart);
    //删除用户购物车
    int delectOrderCart(OrderCartExample orderCart);
    //添加用户收货地址
    OrderUserAddress insertOrderUserAddress(OrderUserAddress orderUserAddress);
    //查询用户收货地址
    List<OrderUserAddress>selectExample(OrderUserAddressExample example);
    //修改用户收货地址
    int updateAddress(OrderUserAddress example);
    //获得单条用户收货地址
    OrderUserAddress getUserAddress(int id);
    //删除用户收货地址
    int delectAddress(OrderUserAddressExample example);
    UcenterUser selectRegionUser(int id,int state);
    int insertCity(UcenterUserCity ucenterUserCity);
    int updateCity(UcenterUserCity ucenterUserCity);
    List<UcenterUserCity> selectUserCity(UcenterUserCityExample ucenterUserCityExample);
    UcenterUserCity getUserCity(UcenterUserCityExample ucenterUserCityExample);
    OrderUser inserllOrder(OrderUser orderUser);
    int updateOrder(OrderUser orderUser);
    int updateOrderInfo(OrderUserInfo orderUser);
    int inserllOrderInfo(OrderUserInfo orderUserInfo);
    OrderUser selectOrder(OrderUserExample orderUserExample);
    List<OrderUser> selectOrderList(OrderUserExample example);
    List<OrderUserInfo>seleclUserOrderInfoList(Integer example);
    List<OrderUserInfo>selectOrderInfoList(OrderUserInfoExample example);
    int updataOrderNotity(OrderNotity orderNotity);
    int installOrderNotity(OrderNotity orderNotity);
    List<OrderUserInfo>selectByUserByOrderUser(Integer example);


    OrderNotity selectOrderNotyti(OrderNotityExample example);
    List<OrderNotity> selectAllOrderNotity(OrderNotityExample example);
    //业主查询订单
    List<OrderUserInfo>seleclByUserOrderInfoList(Integer example);
    //添加材料商流水
    public int instalkOrderCash(MoneyCashFlow moneyCashFlow);
    //查询流水列表，可根据条件查询
    public List<MoneyCashFlow> selectAllOrderCash(MoneyCashFlowExample moneyCashFlowExample);
    //查询单条流水
    public MoneyCashFlow getMoneyCashFlow(MoneyCashFlowExample moneyCashFlowExample);
    //修改流水
    public int updateOrderCash(MoneyCashFlow moneyCashFlow);
    //删除流水
    public int delectOrderCash(MoneyCashFlowExample moneyCashFlowExample);
    //保存用户余额
    public int instalkMoneyUserCash(MoneyUser moneyUser);
    //查询用户余额
    public List<MoneyUser> selectAllMoneyUserCash(MoneyUserExample moneyUserExample);
    //获得用户余额
    public MoneyUser getMoneyUserFlow(MoneyUserExample moneyUserExample);
    //修改用户余额
    public int updateMoneyUserCash(MoneyUser moneyUser);
    //删除用户余额
    public int delectMoneyCash(MoneyUserExample moneyUserExample);
    //添加设计师
    int installDesigner(DneedsDesigner dneedsDesigner);
    //查询设计师
    List<DneedsDesigner> selectDesigner(DneedsDesignerExample dneedsDesignerExample);
    //根据条件获取单一设计师
    DneedsDesigner getDesigner(DneedsDesignerExample dneedsDesignerExample);
    //修改设计师
    int updateDesigner(DneedsDesigner dneedsDesigner);
    //删除设计师
    int delectDesigner(DneedsDesigner dneedsDesigner);
    //添加案例
    int installDneedsDesignerCase(DneedsDesignerCase dneedsDesigner);
    //获取案例列表
    List<DneedsDesignerCase> selectDneedsDesignerCase(DneedsDesignerCaseExample dneedsDesignerExample);
    //获取单个案例
    DneedsDesignerCase getDneedsDesignerCase(DneedsDesignerCaseExample dneedsDesignerExample);
    //修改案例
    int updateDneedsDesignerCase(DneedsDesignerCase dneedsDesigner);
    //删除案例
    int delectDneedsDesignerCase(DneedsDesignerCase dneedsDesigner);
    //添加需求单
    int installDneedsDemand(DneedsDemand data);
    //获取需求单
    List<DneedsDemand> selectDneedsDemand(DneedsDemandExample data);
    //获取单一需求单
    DneedsDemand getDneedsDemand(DneedsDemandExample data);
    //修改需求单
    int updateDneedsDemand(DneedsDemand data);
    //删除需求单
    int delectDneedsDemand(DneedsDemand data);
    //添加投标单
    int installDneedsBid(DneedsBid data);
    //获取投标单
    List<DneedsBid> selectDneedsBid(DneedsBidExample data);
    //获取单一投标单
    DneedsBid getDneedsBid(DneedsBidExample data);
    //修改投标单
    int updateDneedsBid(DneedsBid data);
    //删除投标单
    int delectDneedsBid(DneedsBid data);
    //添加设计订单
    int installOrderUserDemand(OrderUserDemand data);
    //获取设计订单
    List<OrderUserDemand> selectOrderUserDemand(OrderUserDemandExample data);
    //获取单一设计订单
    OrderUserDemand getOrderUserDemand(OrderUserDemandExample data);
    //修改设计订单
    int updateOrderUserDemand(OrderUserDemand data);
    //删除设计订单
    int delectOrderUserDemand(OrderUserDemand data);
    //添加投标设计图
    int installDneedsDemandSjt(DneedsDemandSjt data);
    //获取投标设计图
    List<DneedsDemandSjt> selectDneedsDemandSjt(DneedsDemandSjtExample data);
    //获取单一投标设计图
    DneedsDemandSjt getDneedsDemandSjt(DneedsDemandSjtExample data);
    //修改投标设计图
    int updateDneedsDemandSjt(DneedsDemandSjt data);
    //删除投标设计图
    int delectDneedsDemandSjt(DneedsDemandSjt data);
    //添加材料图
    int installDneedsDemandWlt(DneedsDemandWlt data);
    //获取材料图
    List<DneedsDemandWlt> selectDneedsDemandWlt(DneedsDemandWltExample data);
    //获取单一材料图
    DneedsDemandWlt getDneedsDemandWlt(DneedsDemandWltExample data);
    //修改材料图
    int updateDneedsDemandWlt(DneedsDemandWlt data);
    //删除投标设计图
    int delectDneedsDemandWlt(DneedsDemandWlt data);
    WorkmanManinfo installWorkmanManinfo(WorkmanManinfo workmanWorkmanManinfo);
    List<WorkmanManinfo> selectWorkmanManinfo(WorkmanManinfoExample workmanWorkmanManinfoExample);
    WorkmanManinfo getWorkmanManinfo(WorkmanManinfoExample workmanWorkmanManinfoExample);
    int updateWorkmanManinfo(WorkmanManinfo workmanWorkmanManinfo);
    int delectWorkmanManinfo(WorkmanManinfo workmanWorkmanManinfo);
    //距离查询工人
    List<WorkmanManinfo> selectByPrimaryWorkmanManinfo(int regionNumber, int status, long min0, long max0,
                                                       long min1, long max1, long min2, long max2,
                                                       long min3, long max3,
                                                       long min4, long max4,
                                                       long min5, long max5,
                                                       long min6, long max6,
                                                       long min7, long max7,
                                                       long min8, long max8);
    List<WorkmanDemand> selectByPrimaryWorkmanDemand(int regionNumber, int status, long min0, long max0,
                                                     long min1, long max1, long min2, long max2,
                                                     long min3, long max3,
                                                     long min4, long max4,
                                                     long min5, long max5,
                                                     long min6, long max6,
                                                     long min7, long max7,
                                                     long min8, long max8);
    int installWorkmanManinfoCase(WorkmanManinfoCase workmanWorkmanManinfo);
    List<WorkmanManinfoCase> selectWorkmanManinfoCase(WorkmanManinfoCaseExample workmanWorkmanManinfoExample);
    WorkmanManinfoCase getWorkmanManinfoCase(WorkmanManinfoCaseExample workmanWorkmanManinfoExample);
    int updateWorkmanManinfoCase(WorkmanManinfoCase workmanWorkmanManinfo);
    int delectWorkmanManinfoCase(WorkmanManinfoCase workmanWorkmanManinfo);
    int installWorkmanDemand(WorkmanDemand data);
    List<WorkmanDemand> selectWorkmanDemand(WorkmanDemandExample data);
    WorkmanDemand getWorkmanDemand(WorkmanDemandExample data);
    int updateWorkmanDemand(WorkmanDemand data);
    int delectWorkmanDemand(WorkmanDemand data);
    //添加投标单
    int installWorkmanBid(WorkmanBid data);
    //获取投标单
    List<WorkmanBid> selectWorkmanBid(WorkmanBidExample data);
    //获取单一投标单
    WorkmanBid getWorkmanBid(WorkmanBidExample data);
    //修改投标单
    int updateWorkmanBid(WorkmanBid data);
    //删除投标单
    int delectWorkmanBid(WorkmanBid data);
    //添加投标设计图
    int installWorkmanDemandSjt(WorkmanDemandSjt data);
    //获取投标设计图
    List<WorkmanDemandSjt> selectWorkmanDemandSjt(WorkmanDemandSjtExample data);
    //获取单一投标设计图
    WorkmanDemandSjt getWorkmanDemandSjt(WorkmanDemandSjtExample data);
    //修改投标设计图
    int updateWorkmanDemandSjt(WorkmanDemandSjt data);
    //删除投标设计图
    int delectWorkmanDemandSjt(WorkmanDemandSjt data);
    //添加投标设计图
    int installWorkmanDemandWlt(WorkmanDemandWlt data);
    //获取投标设计图
    List<WorkmanDemandWlt> selectWorkmanDemandWlt(WorkmanDemandWltExample data);
    //获取单一投标设计图
    WorkmanDemandWlt getWorkmanDemandWlt(WorkmanDemandWltExample data);
    //修改投标设计图
    int updateWorkmanDemandWlt(WorkmanDemandWlt data);
    //删除投标设计图
    int delectWorkmanDemandWlt(WorkmanDemandWlt data);
    List<ConfigGztype> selectConfigPtanliExample(ConfigGztypeExample example);
    ConfigGztype selectConfigGztype(ConfigGztypeExample example);
    //添加技能
    int installWorkmanManinfoJineng(WorkmanManinfoJineng data);
    //获取技能
    List<WorkmanManinfoJineng> selectWorkmanManinfoJineng(WorkmanManinfoJinengExample data);
    //获取单一技能
    WorkmanManinfoJineng getWorkmanManinfoJineng(WorkmanManinfoJinengExample data);
    //修改技能
    int updateWorkmanManinfoJineng(WorkmanManinfoJineng data);
    //删除技能
    int delectWorkmanManinfoJineng(WorkmanManinfoJineng data);

}
